improvement(settings): react-doctor perf & correctness pass#5327
Conversation
- combine multi-pass array iterations into single passes (api-keys, credential-sets, secrets-manager, team-management) - cache/hoist Intl formatters to module scope (billing); hoist pure functions and inline-default constants - stabilize react-query array fallbacks so memos stop recomputing while loading (api-keys, byok, workflow-mcp) - fix create-workflow-mcp modal reset via render-phase prevOpen compare instead of a state-adjusting effect - accessibility: aria-labels on real inputs, aria-hidden on autofill decoys, native <button> for clickable rows - immutable in-place sort where the array is already a fresh copy
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
PR SummaryLow Risk Overview Performance: Query fallbacks now use stable empty constants ( Correctness: The create workflow MCP server modal resets form state when opening via a Accessibility: Autofill decoy fields get Reviewed by Cursor Bugbot for commit eafaab9. Configure here. |
Greptile SummaryThis PR improves the settings surface with small performance, correctness, and accessibility updates. The main changes are:
Confidence Score: 5/5This looks safe to merge.
Important Files Changed
Reviews (2): Last reviewed commit: "fix(settings): render non-clickable inbo..." | Re-trigger Greptile |
…utton Addresses review: a native disabled <button> can inherit browser disabled styling (dimmed text / lower contrast) on non-navigable task rows. Render an interactive <button> only when the row is clickable; otherwise a plain <div> with identical layout — preserving the semantic-button a11y win without the disabled-state visual regression.
|
@greptile review |
|
@cursor review |
There was a problem hiding this comment.
✅ Bugbot reviewed your changes and found no new issues!
Comment @cursor review or bugbot run to trigger another review on this PR
Reviewed by Cursor Bugbot for commit eafaab9. Configure here.
Summary
Ran react-doctor on the settings surface and fixed the genuine, behavior-preserving findings (score 54 → 57; errors 4 → 2; diagnostics 117 → 72). No hacky/cargo-cult changes.
Intlformatters to module scope (billing); hoisted pure functions + inline-default constants; immutable in-place sort where the array is already a fresh copy?? EMPTY) so downstreamuseMemos stop recomputing while loading (api-keys, byok, workflow-mcp)prevOpencompare instead of a state-adjusting effect (removes a stale-flash); genuineexhaustive-depsfixes (v5-stablemutateAsync)aria-labels on real inputs,aria-hiddenon autofill decoys, native<button>for clickable rows (inbox task row, profile-picture control)Deliberately not done (would be hacky or out-of-scope): component splits (
no-giant-component) anduseReducerrefactors; "fixing" barrel imports (repo mandates barrels) or design-system JSX-as-prop; parallelizing a sequential invite loop (changes partial-failure semantics); array-index→id key change (data-model change, deferred).Type of Change
Testing
Tested manually.
tsc --noEmitclean, biome clean across the surface. react-doctor re-run confirms the reductions above.Checklist